#include "BulletCollision/CollisionShapes/btCylinderShape.h"
#ifdef __cplusplus
extern "C" {
#endif
btCylinderShapeZ* bullet_NewbtCylinderShapeZ(btVector3* halfExtents){
	btVector3 const& c_arg_halfExtents=(btVector3 const&)(*halfExtents);
	btCylinderShapeZ* wrap_out = new btCylinderShapeZ(c_arg_halfExtents);
	return wrap_out;
}

btCylinderShapeX* bullet_NewbtCylinderShapeX(btVector3* halfExtents){
	btVector3 const& c_arg_halfExtents=(btVector3 const&)(*halfExtents);
	btCylinderShapeX* wrap_out = new btCylinderShapeX(c_arg_halfExtents);
	return wrap_out;
}

btCylinderShapeData* bullet_NewbtCylinderShapeData(){
	btCylinderShapeData* wrap_out = new btCylinderShapeData();
	return wrap_out;
}

btConvexInternalShapeData* bullet_btCylinderShapeData_GetFieldOfM_convexInternalShapeData(btCylinderShapeData* c_this){
	return (btConvexInternalShapeData*)(&c_this->m_convexInternalShapeData);
}

char** bullet_btCylinderShapeData_GetFieldOfM_padding(btCylinderShapeData* c_this){
	return (char**)(&c_this->m_padding);
}

int bullet_btCylinderShapeData_GetFieldOfM_upAxis(btCylinderShapeData* c_this){
	return (int)(c_this->m_upAxis);
}

btCylinderShape* bullet_NewbtCylinderShape(btVector3* halfExtents){
	btVector3 const& c_arg_halfExtents=(btVector3 const&)(*halfExtents);
	btCylinderShape* wrap_out = new btCylinderShape(c_arg_halfExtents);
	return wrap_out;
}

btVector3* bullet_btCylinderShape_getHalfExtentsWithMargin(btCylinderShape* c_this){
	btVector3 c_out = c_this->getHalfExtentsWithMargin();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btCylinderShape_getHalfExtentsWithoutMargin(btCylinderShape* c_this){
	btVector3 const& c_out = c_this->getHalfExtentsWithoutMargin();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

int bullet_btCylinderShape_getUpAxis(btCylinderShape* c_this){
	int c_out = c_this->getUpAxis();
	int wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
